home *** CD-ROM | disk | FTP | other *** search
/ Freaks Macintosh Archive / Freaks Macintosh Archive.bin / Freaks Macintosh Archives / Textfiles / coloredbooks / OrangeBook.sit.hqx / Orange Book
Text File  |  1997-11-17  |  76KB  |  1,699 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9. A Guide to Understanding Configuration Management in Trusted
  10. Systems 
  11.  
  12.  
  13.  
  14.  
  15.  
  16. A Guide to Understanding Configuration Management in Trusted
  17. Systems 
  18.  
  19. NATIONAL COMPUTERSECURITY CENTER
  20.  
  21.  
  22.  
  23. NCSC-TG-006-88
  24.  
  25.  
  26. Library No. S-228,590
  27. FOREWORD
  28.  
  29.  
  30.  
  31. This publication, "", is being issued by the National
  32. Computer Security Center (NCSC) under the authority of and in
  33. accordance with Department of Defense (DoD) Directive 5215.1.
  34. The guidelines described in this document provide a set of good
  35. practices related to configuration management in Automated Data
  36. Processing (ADP) systems employed for processing classified and
  37. other sensitive information.  Recommendations for revision to
  38. this guideline are encouraged and will be reviewed biannually
  39. by the National Computer Security Center through a formal review
  40. process.  Address all proposals for revision through appropriate
  41. channels to:
  42.  
  43.  • National Computer Security Center
  44.  • 9800 Savage Road
  45.  • Fort George G. Meade, MD  20755-6000
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53. Attention: Chief, Computer Security Technical Guidelines
  54.  
  55.  
  56. ____________________________
  57.  
  58.  • Patrick R. Gallagher, Jr.  28 March 1988
  59.  • Director
  60.  • National Computer Security Center
  61.  
  62.  
  63. ACKNOWLEDGEMENTS
  64.  
  65.  
  66.  
  67. Special recognition is extended to James N. Menendez, National
  68. Computer Security Center (NCSC), as project manager and primary
  69. author of this document.
  70.  
  71.  
  72. Special acknowledgement is given to Grant Wagner, NCSC, and Dana
  73. Nell Stigdon, NCSC, for their constant help and guidance in the
  74. production of this document.  Additionally, Dana Nell Stigdon,
  75. was responsible for writing the section on the Ratings Maintenance
  76. Program.  Acknowledgement is also given to all those members of
  77. the computer security community who contributed their time and
  78. expertise by actively participating in the review of this document.
  79.  
  80.  • (1) Unix is a registered trademark of Bell Laboratories
  81.  
  82.  
  83.  
  84.  
  85.  
  86. PREFACE
  87.  
  88.  
  89.  
  90. Throughout this guideline there will be recommendations made that
  91. are not included in the Trusted Computer System Evaluation Criteria
  92. (TCSEC) as requirements.  Any recommendations that are not in
  93. the TCSEC will be prefaced by the word "should," whereas
  94. all requirements will be prefaced by the word "shall."
  95.  It should be noted that a TCSEC rating will only be based upon
  96. meeting the TCSEC requirements.  Recommendations are made in order
  97. to provide additional ways of increasing assurance.  It is hoped
  98. that this will help to avoid any confusion.
  99. 1. PURPOSE
  100.  
  101.  
  102.  
  103. The Trusted Computer System Evaluation Criteria (TCSEC) is the
  104. standard used for evaluating the effectiveness of security controls
  105. built into ADP systems.  The TCSEC is divided into four divisions:
  106. D, C, B, and A, ordered in a hierarchical manner with the highest
  107. division, A, being reserved for systems providing the best available
  108. level of assurance.  Within divisions C through A are a number
  109. of subdivisions known as classes, which are also ordered in a
  110. hierarchical manner to represent different levels of security
  111. in these classes.
  112.  
  113.  
  114. For TCSEC classes B2 through A1, the TCSEC requires that all changes
  115. to the Trusted Computing Base (TCB) be controlled by configuration
  116. management.  Configuration management of a trusted system consists
  117. of identifying, controlling, accounting for, and auditing all
  118. changes made to the TCB during its development, maintenance, and
  119. design.  The primary purpose of this guideline is to provide guidance
  120. to developers of trusted systems on what configuration management
  121. is and how it may be implemented in the development and life-cycle
  122. of a trusted system.  This guideline has also been designed to
  123. provide guidance to developers of all systems on the importance
  124. of configuration management and how it may be implemented.
  125.  
  126.  
  127. Examples in this document are not to be construed as the only
  128. implementation that will satisfy the TCSEC requirement.  The examples
  129. are merely suggestions of appropriate implementations.  The recommendations
  130. in this document are also not to be construed as supplementary
  131. requirements to the TCSEC.  The TCSEC is the only metric against
  132. which systems are to be evaluated.
  133.  
  134.  
  135. This guideline is part of an on-going program to provide helpful
  136. guidance on TCSEC issues and the features they address.  
  137. 2. SCOPE
  138.  
  139.  
  140.  
  141. An important security feature of TCSEC classes B2 through A1 is
  142. that there be configuration management procedures to manage changes
  143. to the Trusted Computing Base (TCB) and all of the documentation
  144. and tests affected by these changes.  Additionally, it is recommended
  145. that such plans and procedures exist for systems not being considered
  146. for an evaluation or whose target evaluation class may be less
  147. than B2.  The assurance provided by configuration management is
  148. beneficial to all systems.  This guideline will discuss configuration
  149. management and its features as they apply to computer systems
  150. and products, with specific attention being given to those that
  151. are being built with the intention of meeting the requirements
  152. of the TCSEC, and to those systems planning to be re-evaluated
  153. under the Ratings Maintenance Program (RAMP) (see Section 11.
  154. RAMP).
  155.  
  156.  
  157. Except in cases where there is a distinction between the configuration
  158. management of a trusted system and an untrusted system, the word
  159. "system" shall be used as the object of configuration
  160. management, encompassing both the system and the TCB.  It should
  161. be noted that the TCSEC only requires the TCB to be controlled
  162. by configuration management, although it is recommended that the
  163. entire system be maintained under configuration management.
  164. 3. CONTROL OBJECTIVES
  165.  
  166.  
  167.  
  168. The TCSEC gives the following as the Assurance Control Objective:
  169.  "Systems that are used to process or handle classified or
  170. other sensitive information must be designed to guarantee correct
  171. and accurate interpretation of the security policy  and must not
  172. distort the intent of that policy.  Assurance  must be provided
  173. that correct implementation and operation of the policy exists
  174. throughout the system's life-cycle."[1]
  175.  
  176.  
  177. Configuration management maintains control of a system throughout
  178. its life-cycle, ensuring that the system in operation is the correct
  179. system, implementing the correct security policy.  The Assurance
  180. Control Objective as it relates to configuration management leads
  181. to the following control objective that may be applied to configuration
  182. management: 
  183.  
  184.  
  185. "Computer systems that process and store sensitive or classified
  186. information depend on the hardware and software  to protect that
  187. information.  It follows that the hardware and software themselves
  188. must be protected against unauthorized changes that could cause
  189. protection mechanisms to malfunction or be bypassed completely.
  190.  [For this reason, changes to trusted computer systems, during
  191. their entire life-cycle, must be carefully considered and controlled
  192. to ensure that the integrity of the protection mechanism is maintained.]
  193.  Only in this way can confidence be provided that the hardware
  194. and software  interpretation of the security policy is maintained
  195. accurately and without distortion."
  196. 4. ORGANIZATION
  197.  
  198.  
  199.  
  200. This document has been written to provide the reader with an understanding
  201. of what configuration management is and how it may be implemented
  202. in an ADP system.
  203.  
  204.  
  205. For developers of trusted systems, this document also relates
  206. the TCSEC requirements to the configuration management practices
  207. that meet them.  This document has been organized to illustrate
  208. the connection between practices and requirements through the
  209. use of a numbering convention for the TCSEC requirements.  The
  210. configuration management requirements have been broken down into
  211. 19 separate requirements in Section 6 of this document.  The requirement
  212. number(s) will be located in parenthesis following its appropriate
  213. discussion, e.g., (Requirements 2, 15), signifies that the previous
  214. discussion dealt with TCSEC requirements 2 and 15 as stated in
  215. Section 6. 
  216. 5. OVERVIEW OF CONFIGURATION MANAGEMENT PRINCIPLES
  217.  
  218.  
  219.  
  220. Configuration management consists of four separate tasks:identification,
  221. control, status accounting, and auditing.  For every change that
  222. is made to an automated data processing (ADP) system, the design
  223. and requirements of the changed version of the system should be
  224. identified.  The control task of configuration management is performed
  225. by subjecting every change to documentation, hardware, and software/firmware
  226. to review and approval by an authorized authority.  Configuration
  227. status accounting is responsible for recording and reporting on
  228. the configuration of the product throughout the change.  Finally,
  229. through the process of a configuration audit, the completed change
  230. can be verified to be functionally correct, and for trusted systems,
  231. consistent with the security policy of the system.  Configuration
  232. management is a sound engineering practice that provides assurance
  233. that the system in operation is the system that is supposed to
  234. be in use.  The assurance control objective as it relates to configuration
  235. management of trusted systems is to "guarantee that the trusted
  236. portion of the system works only as intended."[1] Procedures
  237. should be established and documented by a configuration management
  238. plan to ensure that configuration management is performed in a
  239. specified manner.  Any deviation from the configuration management
  240. plan could contribute to the failure of the configuration management
  241. of a system entirely, as well as the trust placed in a trusted
  242. system. 
  243. 5.1 Purpose of Configuration Management
  244.  
  245.  
  246.  
  247. Configuration management exists because changes to an existing
  248. ADP system are inevitable.  The purpose of configuration management
  249. is to ensure that these changes take place in an identifiable
  250. and controlled environment and that they do not adversely affect
  251. any properties of the system, or in the case of trusted systems,
  252. do not adversely affect the implementation of the security policy
  253. of the TCB. Configuration management provides assurance that additions,
  254. deletions, or changes made to the TCB do not compromise the trust
  255. of the originally evaluated system.  It accomplishes this by providing
  256. procedures to ensure that the TCB and all documentation are updated
  257. properly.  
  258.  
  259.  
  260. MEETING THE CRITERIA REQUIREMENTS
  261. 6. MEETING THE CRITERIA REQUIREMENTS
  262.  
  263.  
  264.  
  265. This section lists the TCSEC requirements for configuration management.
  266.  Each requirement for each class has been listed separately and
  267. numbered.  Each number may be referenced to the requirement discussions
  268. that follow in this document.  This section is designed to serve
  269. as a quick reference for TCSEC class requirements.
  270. 6.1 The B2 Configuration Management Requirements
  271.  
  272.  
  273.  
  274. Requirement 1 - "During development and maintenance of the
  275. TCB, a configuration management system shall be in place."[1]
  276.  
  277.  
  278.  
  279. Requirement 2 - The configuration management system shall maintain
  280. "control of changes to the descriptive top-level specification
  281. (DTLS)."[1] 
  282.  
  283.  
  284. Requirement 3 - The configuration management system shall maintain
  285. control of changes to "other design data."[1] 
  286.  
  287.  
  288. Requirement 4 - The configuration management system shall maintain
  289. control of changes to "implementation documentation"[1]
  290. (e.g., user's manuals, operating procedures).
  291.  
  292.  
  293. Requirement 5 - The configuration management system shall maintain
  294. control of changes to the "source code."[1]
  295.  
  296.  
  297. Requirement 6 - The configuration management system shall maintain
  298. control of changes to "the running version of the object
  299. code."[1]
  300.  
  301.  
  302. Requirement 7 - The configuration management system shall maintain
  303. control of changes to "test fixtures."[1]
  304.  
  305.  
  306. Requirement 8 - The configuration management system shall maintain
  307. control of changes to test "documentation."[1]
  308.  
  309.  
  310. Requirement 9 - "The configuration management system shall
  311. assure a consistent mapping among all documentation and code associated
  312. with the current version of the TCB."[1]
  313.  
  314.  
  315. Requirement 10 - The configuration management system shall provide
  316. tools "for generation of a new version of the TCB from the
  317. source code."[1]
  318.  
  319.  
  320. Requirement 11 - The configuration management system shall provide
  321. "tools for comparisons of a newly generated TCB version with
  322. the previous version in order to ascertain that only the  intended
  323. changes have been made in the code that will actually be used
  324. as the new version of the TCB."[1]  
  325. 6.2 The B3 Configuration Management Requirements
  326.  
  327.  
  328.  
  329. The requirements for configuration management at TCSEC class B3
  330. are the same as the requirements for TCSEC class B2. Although
  331. no additional requirements have been added, the configuration
  332. management system shall change to reflect changes in the design
  333. documentation requirements at class B3.  This means that the additional
  334. documentation required for TCSEC class B3 shall also be maintained
  335. under configuration management.
  336. 6.3 The A1 Configuration Management Requirements
  337.  
  338.  
  339.  
  340. Requirements 2 through 11 are the same as those described in Section
  341. 6.1 for a class B2 rating.  In addition the following requirements
  342. are added for class A1:
  343.  
  344.  
  345. Requirement 12 - "During the entire life-cycle, i.e., during
  346. the design, development, and maintenance of the TCB, a configuration
  347. management system shall be in place for all security-relevant
  348. hardware, firmware, and software."[1]
  349.  
  350.  
  351. Requirement 13 - The configuration management system shall maintain
  352. control of changes to the TCB hardware.
  353.  
  354.  
  355. Requirement 14 - The configuration management system shall maintain
  356. control of changes to the TCB software.
  357.  
  358.  
  359. Requirement 15 - The configuration management system shall maintain
  360. control of changes to the TCB firmware.
  361.  
  362.  
  363. Requirement 16 - The configuration management system shall "maintain
  364. control of changes to the formal model."[1]
  365.  
  366.  
  367. Requirement 17 - The configuration management system shall maintain
  368. control of changes to the "formal top-level specifications."[1]
  369.  
  370.  
  371. Requirement 18 - The tools available for configuration management
  372. shall be "maintained under strict configuration control."[1]
  373.  
  374.  
  375. Requirement 19 - "A combination of technical, physical, and
  376. procedural safeguards shall be used to protect from unauthorized
  377. modification or destruction the master copy or copies of all material
  378. used to generate the TCB."[1]
  379. 7. FUNCTIONS OF CONFIGURATION MANAGEMENT
  380.  
  381. 7.1 Configuration Identification
  382.  
  383.  
  384.  
  385. Configuration management procedures should enable a person to
  386. "identify the configuration of a system at discrete points
  387. in time for the purpose of systematically controlling changes
  388. to the configuration and maintaining the integrity and traceability
  389. of this configuration throughout the system life cycle."[4]
  390.  The basic function of configuration identification is to identify
  391. the components of the design and implementation of a system. 
  392. When it concerns trusted systems, this specifically means the
  393. design and implementation of the TCB.  This task may be accomplished
  394. through the use of identifiers and baselines (see Section 9.1
  395.  The Baseline Concept).  By establishing configuration items and
  396. baselines, the configuration of the system and its TCB can be
  397. accurately identified throughout the system life-cycle.  
  398.  
  399.  
  400. At TCSEC class B2, the TCSEC requires that "changes to the
  401. descriptive top-level specification, other design data, implementation
  402. documentation, source code, the running version of the object
  403. code, and test fixtures and documentation"[1] of the TCB
  404. be controlled by configuration management (Requirements 2, 3,
  405. 4, 5, 6, 7, 8).  Configuration identification helps achieve this
  406. control.  The TCSEC requires that each change to the TCB shall
  407. be individually identifiable so that a history of the TCB may
  408. be generated at any time.  At TCSEC class A1, the requirements
  409. are extended to include that the "formal model...and formal
  410. top-level specifications" of the TCB shall also be maintained
  411. under the configuration management system (Requirements 16, 17).
  412.  
  413.  
  414.  
  415. The following is a sample list of what shall be identified and
  416. maintained under configuration management:
  417.  
  418.  •  the baseline TCB including hardware, software, and
  419. firmware
  420.  •  any changes to the TCB hardware, software, and firmware
  421. since the previous baseline
  422.  •  design and user documentation
  423.  •  software tests including functional and system integrity
  424.  tests
  425.  •  tools used for generating current configuration items
  426. (required at TCSEC class A1 only)
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434. Configuration management procedures should make it possible to
  435. accurately reproduce any past TCB configuration.  In the event
  436. a security vulnerability is discovered in a version of the TCB
  437. other than the most current one, analysts will need to be able
  438. to reconstruct the past environment.  This reconstruction will
  439. be possible to perform if proper configuration identification
  440. has been performed throughout the system life-cycle.  
  441.  
  442.  
  443. The TCSEC also requires at class B2 and above, that tools shall
  444. be provided "for generation of a new version of the TCB from
  445. the source code" and that there "shall be tools for
  446. comparing a newly generated version with the previous TCB version
  447. in order to ascertain that only the intended changes have been
  448. made in the code that will actually be used as the new version
  449. of the TCB"[1] (Requirements 10, 11).  These tools are responsible
  450. for providing assurance that no additional changes have been inserted
  451. into the TCB that were not intended by the system designer.  Automated
  452. tools are available that make it possible to identify changes
  453. to a system online (see APPENDIX A: AUTOMATED TOOLS).  Any changes,
  454. or suggested changes to a system should be entered into an online
  455. library.  This data can later be used to compare any two versions
  456. of a system.  Such online configuration libraries may even provide
  457. the capability for line-by-line comparison of software modules
  458. and documentation.  At Class A1, the tools used to perform this
  459. function shall be "maintained under strict configuration
  460. control"[1] (Requirement 18).  These tools shall not be changed
  461. without having to undergo a strict review process by an authorized
  462. authority.
  463. 7.1.1 Configuration Items
  464.  
  465.  
  466.  
  467. A configuration item is an uniquely identifiable subset of the
  468. system configuration that represents the smallest portion of the
  469. system to be subject to independent configuration management change
  470. control procedures. Configuration items need to be individually
  471. controlled because any change to a configuration item may have
  472. some effect upon the properties of the system or the security
  473. policy of the TCB.  
  474.  
  475.  
  476. Configuration items as they relate to the TCB, are subsets of
  477. the TCB's hardware, firmware, software, documentation, tests,
  478. and at class A1, development tools.  Each module of TCB software
  479. for example, may constitute a separate configuration item. 
  480.  
  481.  
  482. Configuration items should be assigned unique identifiers (e.g.,
  483. serial numbers, names) to make them easier to identify throughout
  484. the system life-cycle.  Proper identification plays a vital role
  485. in meeting the TCSEC requirement for class B2 that requires the
  486. configuration management system to "assure a consistent mapping
  487. among all documentation and code associated with the current version
  488. of the TCB"[1] (Requirement 9).  Used in conjunction with
  489. a configuration audit, a consistent labeling system helps tie
  490. documentation to the code it describes.  Not only does labeling
  491. each configuration item make them easier to identify, but it also
  492. increases the level of control that may be maintained over the
  493. entire system by making these items more traceable.  
  494.  
  495.  
  496. Configuration items may be given an identifier through a random
  497. distribution process, but, it is more useful for the configuration
  498. identifier to describe the item it identifies.  Selecting different
  499. fields of the configuration identifier to represent characteristics
  500. of the configuration item is one method of accomplishing this.
  501.  The United States Social Security number is a "configuration
  502. identifier" we all have that uses such a system.  The different
  503. fields of the number identify where we applied for the Social
  504. Security card, hence describing a little bit about ourselves.
  505. As the configuration identifier relates to computer systems, one
  506. field should identify the system version the item belongs to,
  507. the version of software that it is, or its interface with other
  508. configuration items. When using a numbering scheme like this,
  509. a change to a configuration item should result in the production
  510. of a new configuration identifier.  This new identifier should
  511. be produced by an alteration or addition to the existing configuration
  512. identifier.  A new version of a software program should not be
  513. identified by the same configuration item number as the original
  514. program.  By treating the two versions as distinct configuration
  515. items, line-by-line comparisons are possible to perform.  
  516.  
  517.  
  518. Identifying configuration items is a task that should be performed
  519. early in the development of the system, and once something is
  520. designated as a configuration item, the design of that item should
  521. not change without the knowledge and permission of the party controlling
  522. the item.  Early identification of configuration items increases
  523. the level of control that may be maintained over the item and
  524. allows the item to be traced back through all stages of the system
  525. development.  In the event that a configuration item is not identified
  526. until late in the development process, accountability for that
  527. item in the early stages of the system development would be non-existent.
  528.  
  529.  
  530. Configuration items may vary widely in complexity, size, and type,
  531. and it is important to choose configuration items with appropriate
  532. granularity.  If the items are too large, the data identifying
  533. each one will overwhelm anyone trying to audit the system.  If
  534. the items are too small, the amount of total identification data
  535. will overwhelm the system auditors.[2]  The appropriate granularity
  536. for configuration items should be identified by each vendor and
  537. documented in the configuration management plan.
  538. 7.2 Configuration Control
  539.  
  540.  
  541.  
  542. "Configuration control involves the systematic evaluation,
  543. coordination, approval, or disapproval of proposed changes to
  544. the design and construction of a configuration item whose configuration
  545. has been formally approved."[5]  Configuration control should
  546. begin in the earliest stages of the design and development of
  547. the system and extend over the full life of the configuration
  548. items included in the design and development stages.  Early initiation
  549. of configuration control procedures provides increased accountability
  550. for the system by making its development more traceable.  The
  551. traceability function of configuration control serves a dual purpose.
  552.  It makes it possible to evaluate the impact of a change to the
  553. system and controls the change as it is being made.  With configuration
  554. control in place, there is less chance of making undesirable changes
  555. to a system that may later adversely affect the security of the
  556. system.
  557.  
  558.  
  559. Initial phases of configuration control are directed towards control
  560. of the system configuration as defined primarily in design documents.
  561.  For these, the Configuration Management plan shall specify procedures
  562. to ensure that all documentation is updated properly and presents
  563. an accurate description of the system and TCB configuration. 
  564. Often a change to one area of a system may necessitate a change
  565. to another area. It is not acceptable to only write documentation
  566. for new code or newly modified code, but rather documentation
  567. for all parts of the TCB that were affected by the addition or
  568. change shall be updated accordingly.  Although documentation may
  569. be available, unless it is kept under configuration management
  570. and updated properly it will be of little, if any use.  In the
  571. event that the system is found to be deficient in documentation,
  572. efforts should be made to create new documentation for areas of
  573. the system where it is presently inadequate or non-existent. 
  574.  
  575.  
  576.  
  577. To meet the TCSEC requirements though, configuration control shall
  578. cover a broader area than just documentation, and at Class B2
  579. shall also maintain control of "design data, source code,
  580. the running version of the object code, and test fixtures"[1]
  581. of the TCB (Requirements 3, 5, 6, 7).  A change to any of these
  582. shall be subject to review and approval by an authorized authority.
  583.  
  584.  
  585.  
  586. For TCB configuration items, those items shall not be able to
  587. change without the permission of the controlling party. At TCSEC
  588. class A1, this requirement is strengthened to require "procedural
  589. safeguards"[1] to protect against unauthorized modification
  590. of the materials used in the TCB (Requirement 19). 
  591.  
  592.  
  593. These procedures should require that not only does the controlling
  594. party need to give permission to have a change performed, but
  595. that the controlling party performs the change on the master copy
  596. of the TCB that will be released.  This ensures against changes
  597. being made to the master copy that are different than the approved
  598. changes. 
  599.  
  600.  
  601. The degree of configuration control that is exercised over the
  602. TCB will affect whether or not it meets the TCSEC requirements
  603. for configuration management.  The configuration management requirements
  604. in the TCSEC require that a configuration management system be
  605. in place during the "development and maintenance of the TCB"
  606. at Class B2 (Requirement 1), and at Class A1, "during the
  607. entire life-cycle"[1] of the TCB (Requirement 12).  A minimal
  608. configuration control system that would not be sufficient in meeting
  609. the TCSEC requirements, may only provide for review after a change
  610. has been made to the system.  A system such as this may ensure
  611. that the change is complete and acceptable and may control the
  612. release of the change, but for the most part, the control exercised
  613. is little more than an after-the-fact quality assurance check.
  614. This system is certainly better than having no control system
  615. in place, but it would not meet the TCSEC requirements for configuration
  616. management.  What is missing from this system that would bring
  617. it closer to the B2 requirements is control over the change as
  618. it is being made.  The configuration control required by the TCSEC
  619. should provide for constant checking and approval of a change
  620. from its inception, through implementation and testing, to release.
  621.  The level of control exercised over the TCB may exceed that of
  622. the rest of the system, but it is recommended that all parts of
  623. the system be under configuration control.  
  624.  
  625.  
  626. In the case of a change to hardware or software/firmware that
  627. will be used at multiple sites, configuration control is also
  628. responsible for ensuring that each site receives the appropriate
  629. version of the system. 
  630.  
  631.  
  632. The point behind configuration control of the TCB is that all
  633. changes to the TCB shall be approved, monitored, and evaluated
  634. to provide assurance that the TCB functions properly and that
  635. all security policies are maintained.
  636. 7.3 Configuration Status Accounting
  637.  
  638.  
  639.  
  640. Configuration status accounting is charged with reporting on the
  641. progress of the development in very specific ways.  It accomplishes
  642. this task through the processes of data recording, data storing,
  643. and data reporting.  The main objective of configuration status
  644. accounting is to record and report all information that is of
  645. significance to the configuration management process.  What is
  646. of significance should be outlined in the Configuration Management
  647. Plan.  The establishment of a new baseline (see Section 9.1 THE
  648. BASELINE CONCEPT) or the meeting of a milestone is an example
  649. of what should be recorded as configuration status accounting
  650. information.  The requirements in the configuration management
  651. plan should be viewed as the minimum and any events that seem
  652. relevant to configuration management should be captured and recorded
  653. in that they may prove to be useful in the future.  
  654.  
  655.  
  656. The configuration accounting system may consist of tracing through
  657. documentation manually to find the status of a change or it may
  658. consist of a database that can automatically track a change. 
  659. As long as the information exists accurately in some form though,
  660. it will serve its purpose.  The benefit of an online status accounting
  661. system is that the information may be kept in a more structured
  662. fashion, which would facilitate keeping it up to date.  Being
  663. able to query a database for information concerning the status
  664. of a configuration change or configuration item would also be
  665. less cumbersome than sorting through notebook pages.  Finally,
  666. the durability of a diskette or hard disk for storage outweighs
  667. that of a spiral notebook or folder, provided that it is properly
  668. backed up to avoid data loss in the event of a system failure.
  669.  
  670.  
  671.  
  672. Whichever system is used, it should be possible to quickly locate
  673. all authorized versions of a configuration item, add together
  674. all authorized changes with comments about the reason for the
  675. change, and arrive at either the current status of that configuration
  676. item, or some intermediate status of the requested item.  The
  677. status of all authorized changes being performed should be formulated
  678. into a System Status Report that will be presented at a Configuration
  679. Control Board meeting (see Section 9.3 THE CONFIGURATION CONTROL
  680. BOARD).  
  681.  
  682.  
  683. Configuration status accounting "establishes records and
  684. reports which enable proper logistics support, i.e., the supplying
  685. of spares, instruction manuals, training and maintenance facilities,
  686. etc. to be established."[5]  The records and reports produced
  687. through configuration status accounting should include a current
  688. configuration list, an historical change list, the original designs,
  689. the status of change requests and their implementation, and should
  690. provide the ability to trace all changes.
  691. 7.4 Configuration Audit
  692.  
  693.  
  694.  
  695. Configuration auditing involves checking for top to bottom completeness
  696. of the configuration accounting information "to ascertain
  697. that only the [authorized] changes have been made in the code
  698. that will actually be used as the new version of the TCB."[1]
  699. (Requirement 11)  When a change has been made to a system, it
  700. should be reviewed and audited for its effect on the rest of the
  701. system. This should include reviewing and testing all software
  702. to ensure that the change has been performed correctly. 
  703.  
  704.  
  705. Configuration auditing is concerned with examining the control
  706. process of the system and ensuring that it actually occurs the
  707. way it should.  Configuration auditing for trusted systems verifies
  708. that after a change has been made to the TCB, the security features
  709. and assurances are maintained. Configuration audits should be
  710. performed periodically to verify the configuration status accounting
  711. information.  The configuration audit minimizes the likelihood
  712. that unapproved changes have been inserted without going unnoticed
  713. and that the status accounting information adequately demonstrates
  714. that the configuration management assurance is valid.
  715.  
  716.  
  717. "A complete audit should include tracing each requirement
  718. down through all functions that implement it to see if that requirement
  719. is met."[2]  Furthermore, the configuration audit should
  720. also ensure that no additions were made that were not required.
  721.  For the audit to provide a useful form of technical review, it
  722. should be predictable and as foolproof as possible, i.e., there
  723. should be specific desired results. 
  724.  
  725.  
  726. The configuration audit should verify that:
  727.  
  728.  •  the architectural design satisfies the requirements
  729.  •  the detailed design satisfies the architectural design
  730.  •  the code implements the detailed design
  731.  •  the item/product performs per the requirements
  732.  •  the configuration documentation and the item/product
  733. match
  734.  
  735.  
  736.  
  737.  
  738.  
  739.  
  740.  
  741. The main emphasis of configuration auditing is on providing the
  742. user with reasonable assurance that the version of a system in
  743. use is the same version that the user expects to be in use.  Configuration
  744. audits ensure that the configuration control procedures of the
  745. configuration management system are being followed.  The assurance
  746. feature of configuration auditing is provided through reasonable
  747. and consistent accountability procedures.  All code audits should
  748. follow roughly the same procedures and perform the same set of
  749. checks for every change to the system. 
  750. 8. THE CONFIGURATION MANAGEMENT PLAN
  751.  
  752.  
  753.  • Effective configuration management should include a well-thought-out
  754. plan that should be prepared immediately after project initiation.
  755.  This plan should describe, in simple, positive statements, what
  756. is to be done to implement configuration management in the system
  757. and TCB.  A minimal configuration management plan may be limited
  758. to simply defining how configuration management will be implemented
  759. as it relates to the identification, control, accounting, and
  760. auditing tasks.  The configuration management plan described in
  761. the following paragraphs is an example of a plan that goes into
  762. more detail and contains documentation on all aspects of configuration
  763. management, such as examples of documents to be used for configuration
  764. management, procedures for any automated tools available, or a
  765. Configuration Control Board roster (see Section 
  766.  
  767.  
  768. 8.1 THE CONFIGURATION CONTROL BOARD
  769.  
  770.  
  771.  
  772. The configuration management plan should contain documentation
  773. that describes how the configuration management "tasks are
  774. to be carried out in sufficient detail that anyone involved with
  775. the project can consult them to determine how each specific development
  776. task relates to CM."[2]  
  777.  
  778.  
  779. One portion of the configuration management plan should define
  780. the roles played by designers, developers, management, the Configuration
  781. Control Board, and all of the personnel involved with any part
  782. of the life-cycle of the system.  The responsibilities required
  783. by all those involved with the system should be established and
  784. documented in the configuration management plan to ensure that
  785. the human element functions properly during configuration management.
  786.  A list of Configuration Control Board members, or the titles
  787. of the members should also be included in this section.
  788.  
  789.  
  790. Any tools that will be available and used for configuration management
  791. should be documented in the configuration management plan.  At
  792. TCSEC class A1, it is required that these tools shall be "maintained
  793. under strict configuration control"[1] (Requirement 18).
  794.  These tools may include forms used for change control, conventions
  795. for labeling configuration items, software libraries, as well
  796. as any automated tools that may be available to support the configuration
  797. management process.  Samples of any documents to be used for reporting
  798. should also be contained in the configuration management plan
  799. with a description of each.
  800.  
  801.  
  802. A section of the Configuration Management Plan should deal with
  803. procedures.  Since the main thrust of configuration management
  804. consists of the following of procedures, there needs to be thorough
  805. documentation on what procedures one should follow during configuration
  806. management.  The configuration management plan should provide
  807. the procedures to take to ensure that both user and design documentation
  808. are updated in synchrony with all changes to the system.  It should
  809. include the guidelines for creating and maintaining functional
  810. tests and documentation throughout the life of the system.  The
  811. configuration management plan should describe the procedures for
  812. how the design and implementation of changes are proposed, evaluated,
  813. coordinated, and approved or disapproved.  The configuration management
  814. plan should also include the steps to take to ensure that only
  815. those approved changes are actually included and that the changes
  816. are included in all of the necessary areas.
  817.  
  818.  
  819. Another portion of the configuration management plan should define
  820. any existing "emergency" procedures, e.g., procedures
  821. for performing a time sensitive change without going through a
  822. full review process, that may override the standard procedure.
  823.  These procedures should define the steps for retroactively implementing
  824. configuration management after the emergency change has been completed.
  825.  
  826.  
  827.  
  828. The configuration management plan is a living document and should
  829. remain flexible during design and development phases.  Although
  830. the configuration management plan is in place to impose control
  831. on a project, it should still be open to additions and changes
  832. as designers and developers see fit. This is not to say that the
  833. configuration management plan is only a guide and need not be
  834. followed, but that modifications should be able to occur.  If
  835. the plan is not followed, there is no way it will be able to provide
  836. the appropriate assurances.  In the event that a change is needed
  837. to the configuration management plan, the change should be carefully
  838. evaluated and approved.  In changes to the configuration management
  839. plan of a trusted system this evaluation shall ensure that the
  840. security features and assurances supported by the plan are still
  841. maintained after the change has been implemented. 
  842. 9. IMPLEMENTATION METHODS
  843.  
  844.  
  845.  
  846. This section discusses implementation methods for configuration
  847. management that may be used to meet some of the requirements of
  848. the TCSEC.  Section 9.1 discusses the baseline concept as a method
  849. of configuration identification.  The baseline concept utilizes
  850. the features of configuration management spoken of previously,
  851. but divides the life-cycle of the system into different baselines.
  852.  
  853.  
  854. Section 9.2 illustrates how a fictitious company, MER, Inc., conducts
  855. configuration management.  They are attempting to meet the TCSEC
  856. requirements for a B2 system. 
  857.  
  858.  
  859. Section 9.3 discusses the concept of a Configuration Control Board
  860. (CCB) for carrying out configuration control.  A CCB is a body
  861. of people responsible for configuration control.  This concept
  862. is widely used by many computer vendors.
  863. 9.1 The Baseline Concept
  864.  
  865.  
  866.  
  867. Baselines are established at pre-selected design points in the
  868. system life-cycle.  One baseline may be used to describe a specific
  869. version of a system, or in some configuration management systems
  870. a single baseline may be defined at each of several major milestones.
  871. Baselines should be established at the discretion of the Configuration
  872. Control Board and outlined in the configuration management plan.
  873.  In cases where several baselines are established, each baseline
  874. serves as a cutoff point for one segment of development, while
  875. simultaneously acting as the step off point for another segment.
  876. The characteristics common to all baselines are that the design
  877. of the system will be approved at the point of their establishment
  878. and it is believed that any changes to this design will have some
  879. impact on the future development of the system. 
  880.  
  881.  
  882. Baseline management is one technique for performing configuration
  883. identification.  It identifies the system and TCB design and development
  884. as a series of phases or baselines that are subject to configuration
  885. control.  Used in conjunction with configuration items, this is
  886. another effective way to identify the system and its TCB configuration
  887. throughout its life-cycle. 
  888.  
  889.  
  890. "For each different type of baseline, the individual components
  891. to be controlled should be identified, and any changes that update
  892. the current configuration should be approved and documented. 
  893. For each intermediate product in the development [life-cycle]
  894. there is only one baseline.  The current configuration can be
  895. found by applying all approved changes to the baseline."[2]
  896.  
  897.  
  898. In a system defining several baselines for different stages of
  899. development, these baselines or milestones should be established
  900. at the system inception to serve as guides throughout the development
  901. process. Although specific baselines are established in this case,
  902. alternatives may be recommended to promote greater design flexibility
  903. or efficiency. The number of baselines that may be established
  904. for a system will vary depending upon the size and complexity
  905. of the system and the methods supported by the designers and developers.
  906.  It is possible to establish multiple baselines existing at the
  907. same time so long as configuration management practices are applied
  908. properly to each baseline.  The following example will discuss
  909. the baseline concept using three common baseline categories: functional,
  910. allocated, and product.  It should be emphasized that these are
  911. simply basic milestones and baselines should be established depending
  912. upon the decisions of the designers and developers. 
  913.  
  914.  
  915. The first baseline, the functional baseline, is established at
  916. the system inception.  It is derived from the performance and
  917. objectives criteria documentation that consists of specifications
  918. defining the system requirements.  Once these specifications have
  919. been established, any changes to them should be approved.
  920.  
  921.  
  922. The requirements produced in the functional baseline may be divided
  923. and subdivided into various configuration items.  Once it has
  924. been decided what the configuration items will be, each of the
  925. items should be given a configuration identifier. From the analysis
  926. of the system requirements the allocated baseline will be established.
  927.  This baseline identifies all of the required functions with a
  928. specific configuration item that is responsible for the function.
  929.  In this baseline, an individual should be charged with the responsibility
  930. for each configuration item.  All changes affecting specifications
  931. defining design requirements for the system or its configuration
  932. items as stated in the allocated baseline should require approval
  933. of the responsible individual.  
  934.  
  935.  
  936. The final baseline, the product baseline, should contain that
  937. version of the system that will be turned over for integration
  938. testing.  This baseline signifies the end of the development phase
  939. and should contain a releasable version of the system.  
  940.  
  941.  
  942. The baseline example mention earlier in which one baseline is
  943. established for a single version of a system entails the same
  944. reasoning as the functional, allocated, and product baseline example.
  945. The system established as a baseline in the single baseline example
  946. will need to have an approved design before being placed under
  947. configuration control.  Prior to the design approval, the system
  948. design will have to have undergone some type of functional review
  949. and a process that would allocate these functions to various configuration
  950. items.  Although the early processes of the design will not be
  951. as formal in the single baseline example as they are when the
  952. early tasks are individually defined, the system will still benefit
  953. from being under the control of configuration management as a
  954. baseline.  The main point of establishing any baseline is controlling
  955. changes to that baseline by requiring any changes to it to have
  956. to undergo an established change control process.  
  957. 9.2 Configuration Management at MER, Inc.
  958.  
  959.  
  960.  
  961. MER, Inc., is a manufacturer of computer systems.  Their latest
  962. project consists of building a system that will meet the B2 requirements
  963. of the TCSEC.  In the past, their configuration management has
  964. only consisted of quality assurance checks, but to meet the B2
  965. requirements they realize that they will need to have specific
  966. configuration management procedures in place during the development
  967. and maintenance of the system.  
  968.  
  969.  
  970. The project manager was assigned the task of writing the configuration
  971. management procedures and elected to present them in a configuration
  972. management plan.  After doing some research on what should be
  973. contained in the configuration management plan, he proceeded to
  974. write a plan for MER, Inc.  The configuration management plan
  975. that was written listed all of the steps to be followed when carrying
  976. out configuration management for the system.  It described the
  977. procedures to be followed by the development team and described
  978. the automated tools that were going to be used at MER, Inc. for
  979. configuration management.  These tools consisted of an online
  980. tracking data base to be used for status accounting, an online
  981. data base that contained a listing of all of the items under configuration
  982. control, and automated libraries used for storing software.  Before
  983. development began, all of the development team was responsible
  984. for reading the configuration management plan to ensure that they
  985. were aware of the procedures to be followed for configuration
  986. management.
  987.  
  988.  
  989. As the system was developed, the TCB hardware, software, and firmware
  990. were labeled using a configuration item numbering scheme that
  991. had been explained in the configuration management plan.  In addition,
  992. the documentation and tests accompanying these items  were also
  993. given configuration item numbers to assure a consistent mapping
  994. between TCB code and these items.  All of the configuration item
  995. numbers and a description of the items were stored in a data base
  996. that could be queried at any time to derive the configuration
  997. of the entire system.  Software and documentation were stored
  998. in a software library where they could be retrieved and worked
  999. on without affecting the master versions.  The master copies of
  1000. all software were stored in a master library that contained the
  1001. releasable versions of the software.  Both of these libraries
  1002. are protected by a discretionary access control mechanism to prevent
  1003. any unauthorized personnel from tampering with the software. 
  1004.  
  1005.  
  1006.  
  1007. During the development of the system, changes were required. 
  1008. The procedures for performing a change under configuration control
  1009. are described in the configuration management plan.  These are
  1010. the same procedures that will remain in effect throughout the
  1011. life-cycle of the system.  For each proposed change, a decision
  1012. has to be made by management whether or not the change is feasible
  1013. and necessary.  MER, Inc. has an online forum for reviewing suggested
  1014. changes.  This forum makes it possible for all of the members
  1015. of the development team to comment on how the proposed change
  1016. may affect their work.  Management would often consult this forum
  1017. to help arrive at their final decision.  
  1018.  
  1019.  
  1020. After a decision was made, a programmer was assigned to perform
  1021. the change.  The programmer would retrieve the most recent version
  1022. of the software from the software library and proceed to change
  1023. it.  As the change was being performed, the changes were entered
  1024. into the online tracking data base.  This made it possible for
  1025. members of the development team to query this data base to find
  1026. the current status of the change at any time.  After the change
  1027. had been performed it was tested and documented, and upon successful
  1028. completion it was forwarded to a reviewer. This reviewer was the
  1029. software manager, who was the only person authorized to approve
  1030. a changed version for release. After the change was approved for
  1031. release, the changed version was stored in the master library
  1032. and a second copy was stored in the software library.  Each change
  1033. stored in these libraries was given a new configuration identification
  1034. number. A tool was available at MER, Inc. that made it possible
  1035. to identify changes made to software.  It compared any two versions
  1036. of the software and provided a line-by-line listing of the differences
  1037. between the two.
  1038.  
  1039.  
  1040. It was realized at the beginning of the development process that
  1041. there would be times when critical changes would need to be performed
  1042. that would not be able to undergo this review process. 
  1043.  
  1044.  
  1045. For these changes, emergency procedures had been listed in the
  1046. configuration management plan and a critical fix library was available
  1047. to record critical changes that had occurred since a release.
  1048.  
  1049.  
  1050. A control process for changes to the TCB hardware was also provided
  1051. for in the configuration management plan.  The procedures ensured
  1052. that changes to the TCB hardware were traceable and did not violate
  1053. the security assumptions made by the TCB software.  Similar to
  1054. software changes, all hardware changes were reviewed by the project
  1055. manager before being implemented.  
  1056.  
  1057.  
  1058. After a change is made to the TCB software, MER, Inc. performs
  1059. a configuration audit to verify the information that exists in
  1060. the tracking data base.  Whether or not a change is performed,
  1061. the configuration management plan at MER, Inc. specifies that
  1062. a configuration audit be performed at least once a month.  This
  1063. audit compares the current master version with the status accounting
  1064. information to verify that no changes have been inserted that
  1065. were not approved. 
  1066.  
  1067.  
  1068. This configuration management plan encompasses the descriptive
  1069. top-level specification (DTLS), implementation documentation,
  1070. source code, object code, test fixtures, and test documentation,
  1071. and has been found to satisfy the TCSEC requirements for configuration
  1072. management at class B2.
  1073. 9.3 The Configuration Control Board (CCB)
  1074.  
  1075.  
  1076.  
  1077. Configuration control may be performed in different ways.  One
  1078. method of configuration control that is in use by systems already
  1079. evaluated at TCSEC Class B2 and above is to have the control carried
  1080. out by a body of qualified individuals known as the Configuration
  1081. Control Board (CCB), also known as the Configuration Change Board.
  1082.  The Board is headed by a chairperson, who is responsible for
  1083. scheduling meetings and for giving the final approval on any proposed
  1084. changes.  The membership of the CCB may vary in size and composition
  1085. from organization to organization, but it should include members
  1086. from any or all of the following areas of the system team:
  1087.  
  1088.  •  Program Management
  1089.  •  System Engineering
  1090.  •  Quality Assurance
  1091.  •  Technical Support
  1092.  •  Integration and Test
  1093.  •  System Installation
  1094.  •  Technical Documentation
  1095.  •  Hardware and Software/Firmware Acquisition
  1096.  •  Program Development
  1097.  •  Security Engineering 
  1098.  •  User Groups
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106. The members of the CCB should interact periodically, either through
  1107. formal meetings, electronic forums, or any other available means,
  1108. to discuss configuration management topics such as proposed changes,
  1109. configuration status accounting reports, and other topics that
  1110. may be of interest to the different areas of the system development.
  1111.  These interactions should be held at periodic intervals to keep
  1112. the entire system team up-to-date with all advancements or alterations
  1113. in the system.  The Board serves to control changes to the system
  1114. and ensures that only approved changes are implemented into the
  1115. system.  The CCB carries out this function by considering all
  1116. proposals for modifications and new acquisitions and by making
  1117. decisions regarding them.  
  1118.  
  1119.  
  1120. An important part of having cross representation in the CCB from
  1121. various groups involved in the system development is to prevent
  1122. "unnecessary and contradictory changes to the system while
  1123. allowing changes that are responsive to new requirements, changed
  1124. functional allocations, and failed tests."[2]  All of the
  1125. members of the Board should have a chance to voice their opinions
  1126. on proposed changes.  For example, if system engineering proposes
  1127. a change that will affect security, both sides should be able
  1128. to present their case at a CCB meeting.  If diversity did not
  1129. exist in the CCB, changes may be performed, and upon implementation
  1130. may be found to be incompatible with the rest of the system. 
  1131.  
  1132.  
  1133.  
  1134. The configuration control process begins with the documentation
  1135. of a change request.  This change request should include justification
  1136. for the proposed change, all of the affected items and documents,
  1137. and the proposed solution. The change request should be recorded,
  1138. either manually or online in order to provide a way of tracking
  1139. all proposed changes to the system and to ensure against duplicate
  1140. change requests being processed.  
  1141.  
  1142.  
  1143. When the change request is recorded, it should be distributed
  1144. for analysis by the CCB who will review and approve or disapprove
  1145. the change request.  An analysis of the total impact of the change
  1146. will decide whether or not the change should be performed.  The
  1147. CCB will approve or disapprove the change request depending upon
  1148. whether or not the change is viewed as a necessary and feasible
  1149. change that will further the design goals of the system.  In situations
  1150. where trusted systems are involved, the CCB shall also ensure
  1151. that the change will not affect the security policy of the system.
  1152.  
  1153.  
  1154. Once a decision has been reached regarding any modifications,
  1155. the CCB is responsible for prioritizing the approved modifications
  1156. to ensure that those that are most important are developed first.
  1157.  When prioritizing changes, an effort should be made to have the
  1158. changes performed in the most logical order whenever possible.
  1159.  The CCB is also responsible for assigning an authority to perform
  1160. the change and for ensuring that the configuration documentation
  1161. is updated properly.  The person assigned to do the change should
  1162. have the proper authorization to modify the system, and in trusted
  1163. systems processing sensitive information, this authorization shall
  1164. be required.  During the development of any enhancements and new
  1165. developments, the CCB continues to exert control over the system
  1166. by determining the level of testing required for all developments.
  1167.  
  1168.  
  1169.  
  1170. Upon completion of the change, the CCB is responsible for verifying
  1171. that the change has been properly incorporated and that only the
  1172. approved change has been incorporated. Tests should be performed
  1173. on the modified system or TCB to ensure that they function properly
  1174. after the change is completed.  The CCB should review the test
  1175. results of any developments and should be the final voice on release
  1176. decisions.  
  1177.  
  1178.  
  1179. The use of a CCB is one way of performing configuration control,
  1180. but not every vendor may have the desire or resources to establish
  1181. one.  Whatever the preference, there should still be some way
  1182. of performing the control processes described previously.  
  1183. 10. OTHER TOPICS
  1184.  
  1185. 10.1 Trusted Distribution
  1186.  
  1187.  
  1188.  
  1189. Related to the configuration management requirements for trusted
  1190. systems is the TCSEC requirement for trusted distribution at class
  1191. A1 which states:
  1192.  
  1193.  
  1194. "A trusted ADP system control and distribution facility 
  1195. shall be provided for maintaining the integrity of the mapping
  1196. between the master data describing the current version of the
  1197. TCB and the on-site master copy of the code for the current version.
  1198.  Procedures (e.g., site security  acceptance testing) shall exist
  1199. for assuring that the TCB  software, firmware, and hardware updates
  1200. distributed to a  customer are exactly as specified by the master
  1201.  copies."[1]
  1202.  
  1203.  
  1204. Two questions that the trusted distribution process should answer
  1205. are: (a) Did the product received come from the organization who
  1206. was supposed to have sent it? and (b) Did the recipient receive
  1207. exactly what the sender intended?
  1208.  
  1209.  
  1210. Configuration management assists trusted distribution by ensuring
  1211. that no alterations are made to the TCB from the time of approved
  1212. modification to the time of release.  The additional configuration
  1213. management requirement at A1 that supports this is, "A combination
  1214. of technical, physical and procedural safeguards shall be used
  1215. to protect from unauthorized modification or destruction the master
  1216. copy or copies of all material used to generate the TCB"[1]
  1217. (Requirement 19).  This requirement calls for strict control over
  1218. changes made to any versions of the TCB.  The possibility that
  1219. a change may not be performed as specified, or that a harmful
  1220. modification may be inserted into the TCB should be considered
  1221. and the authority to perform changes to the master copy should
  1222. be restricted.  A single master copy authority should be made
  1223. responsible for ensuring that only approved and acceptable changes
  1224. are implemented into the master copy.
  1225.  
  1226.  
  1227. Configuration status accounting records and auditing reports can
  1228. provide accountability for all TCB versions in use.  In the event
  1229. of altered copies being distributed or "bogus" copies
  1230. being distributed that were not manufactured by the vendor, configuration
  1231. management records will be able to assess the  validity and accuracy
  1232. of all TCB versions.  Trusted distribution displays the need for
  1233. configuration control over all changes to the TCB.  Without configuration
  1234. control there would be no accountability for the TCB versions
  1235. distributed to the customer. 
  1236. 10.2 Functional Testing
  1237.  
  1238.  
  1239.  
  1240. "The system developer shall provide to the evaluators a document
  1241. that describes the test plan, test procedures that show how the
  1242. security mechanisms were tested, and results of the security mechanisms'
  1243. functional testing."[1]  The creation and maintenance of
  1244. these functional tests is required to be part of the configuration
  1245. management procedures.  Test results and any affected test documentation
  1246. shall be maintained under configuration management and updated
  1247. wherever necessary (Requirements 7, 8).  The tests should be repeatable,
  1248. and include sufficient documentation so that any knowledgeable
  1249. programmer will be able to figure out how to run them.  The test
  1250. plan for the system should be described in the functional specification
  1251. (or other design documentation) for the TCB, along with descriptions
  1252. of the test programs.  The test plan and programs should be reviewed
  1253. and audited along with the programs they test, although the coding
  1254. standards need not be as strict as those of the tested programs.
  1255.  
  1256.  
  1257. It is not acceptable to only generate tests for code that was
  1258. opened or replaced, but all of the portions of the TCB that were
  1259. affected by the change should also be tested.  The NCSC evaluators
  1260. can provide a description of the security functional tests required
  1261. to meet the TCSEC testing requirements, including the testing
  1262. required as stated above for configuration management.
  1263. 10.3 Configuration Management Training
  1264.  
  1265.  
  1266.  
  1267. Each new technical employee should receive training in the configuration
  1268. management procedures that a particular installation follows.
  1269.  Experienced programmers, although they may be familiar with some
  1270. form of configuration management, will also require training in
  1271. any new procedures, i.e., an automated accounting system, that
  1272. will be required to be followed. 
  1273.  
  1274.  
  1275. Training should be conducted either "by holding formal classes
  1276. or by setting aside sufficient time for the reading of the company
  1277. wide configuration standards."[2]  New programmers should
  1278. become familiar with the Configuration Management Plan before
  1279. being allowed to incorporate any changes into the design baseline.
  1280.  It should be stressed that a failure to maintain the configuration
  1281. management standards resulting from untrained employees, could
  1282. prevent the system from receiving a rating.[2]  
  1283. 10.4 Configuration Management Supervision
  1284.  
  1285.  
  1286.  
  1287. A successful configuration management system requires the following
  1288. of many procedures.  Considering the demands made on the system
  1289. staff, errors may occur and shortcuts may be sought which will
  1290. jeopardize the entire configuration management plan. 
  1291.  
  1292.  
  1293. A review process should be present to ensure that no single person
  1294. can create a change to the system and implement it without being
  1295. subject to some type of approval process.  Supervisors, who are
  1296. responsible for the personnel performing the change should be
  1297. required to sign an official record that the change is the correct
  1298. change.[2] 
  1299.  
  1300.  
  1301. Proper supervision also provides assurance that whoever performs
  1302. the change has the proper authorization to do so.  Changes should
  1303. not be performed by personnel that are not qualified to perform
  1304. the change.  Also, in systems that process sensitive information,
  1305. the programmer performing the change shall possess the proper
  1306. security clearance to perform the change.
  1307.  
  1308.  
  1309. Management itself must directly support the configuration management
  1310. plan in order for it to work.  It should not encourage cutting
  1311. configuration management corners under any circumstances, e.g.,
  1312. due to scheduling or budgeting.  Management should be willing
  1313. to support the expenditure of money, people, and time to allow
  1314. for proper configuration management. 
  1315. 11. RATINGS MAINTENANCE PROGRAM
  1316.  
  1317.  
  1318.  
  1319. The Ratings Maintenance Program (RAMP) has been developed by the
  1320. NCSC in an effort to keep the Evaluated Products List (EPL) current.
  1321.  By training vendor personnel to recognize which changes may adversely
  1322. affect the implemetation of the security policy of the system,
  1323. and to track these changes to the evaluated product through the
  1324. use of configuration management, RAMP will permit a vendor to
  1325. maintain the rating of the evaluated product without having to
  1326. re-evaluate the new version.  Because changes from one version
  1327. of an operating system to the next version may affect the security
  1328. features and assurances of that operating system, configuration
  1329. management is an integral part of RAMP.  For a system to maintain
  1330. its rating under this program, the NCSC shall be assured, through
  1331. the vendor's configuration management procedures, that the changes
  1332. made have not adversely affected the implementation of the security
  1333. mechanisms and assurances of the system.
  1334.  
  1335.  
  1336. Each RAMP participant shall develop an NCSC approved Rating Maintenance
  1337. Plan (RMPlan) which includes a detailed Configuration Management
  1338. Plan (CMP) to support the rating maintenance process.  This requirement
  1339. applies to all systems participating in RAMP, regardless of class.
  1340.  For further information about the RAMP program and about configuration
  1341. management requirements for RAMP, contact:
  1342.  
  1343.  • National Computer Security Center
  1344.  • 9800 Savage Road
  1345.  • Fort George G. Meade, MD  207556000
  1346.  
  1347.  
  1348.  
  1349.  
  1350. Attention: Chief, Requirements and Resources Division
  1351. 12. CONFIGURATION MANAGEMENT SUMMARY
  1352.  
  1353.  
  1354.  
  1355. The assurance provided by configuration management is beneficial
  1356. to all systems. It is a requirement for trusted systems for classes
  1357. B2 and above that a configuration management system "be in
  1358. place that maintains control of changes to the descriptive top-level
  1359. specification, other design data, implementation documentation,
  1360. source code, the running version of the object code, and test
  1361. fixtures and documentation"[1] (Requirements 1, 2, 3, 4,
  1362. 5, 6, 7, 8).  Although configuration management is a requirement
  1363. for trusted systems for classes B2 and above, it should be in
  1364. place in all systems regardless of class rating, or if the system
  1365. has a rating at all. 
  1366.  
  1367.  
  1368. Successful configuration management is built around four main
  1369. objectives: control, identification, accounting, and auditing.
  1370.  Through the accomplishment of these objectives, configuration
  1371. management is able to maintain control over the TCB and protect
  1372. it against "unauthorized changes that could cause protection
  1373. mechanisms to malfunction or be bypassed completely."[1]
  1374.  Even for those aspects of the system which are not security-relevant,
  1375. configuration management is still a valuable method of ensuring
  1376. that all of the properties of a system are maintained after a
  1377. change.  It is very important to the success of configuration
  1378. management that a formal configuration management plan be adhered
  1379. to during the life-cycle of the system.
  1380.  
  1381.  
  1382. A successful configuration management plan should begin with early
  1383. and complete definition of configuration management goals, scope,
  1384. and procedures.  The success of configuration management is dependent
  1385. upon accuracy.  Changes should be identified and accounted for
  1386. accurately, and after the change is completed, the change, and
  1387. all affected parts of the system should be thoroughly documented
  1388. and tested.  
  1389.  
  1390.  
  1391. Configuration management provides control and traceability for
  1392. all changes made to the system.  Changes in progress are able
  1393. to be monitored through configuration status accounting information
  1394. in order to control the change and to evaluate its impact on other
  1395. parts of the system.  
  1396.  
  1397.  
  1398. An important part of having a successful configuration management
  1399. plan is that the people involved with it must adhere to its procedures
  1400. in order to keep all documentation current and the status of changes
  1401. up-to-date.  
  1402.  
  1403.  
  1404. With a firm and well documented configuration management plan
  1405. in place, the occurrence of any unnecessary or duplicate changes
  1406. will be reduced greatly and any necessary changes that are required
  1407. should be able to be identified with great ease.  An effective
  1408. configuration management system should be able to show what was
  1409. supposed to have been built, what was built, and what is presently
  1410. being built. 
  1411. APPENDIX A:  AUTOMATED TOOLS
  1412.  
  1413.  
  1414.  
  1415. Automated tools may be used to perform some of the configuration
  1416. management functions that previously had to be performed manually.
  1417.  A data base management system, even with just a limited query
  1418. system, may be used to perform the configuration audit and status
  1419. accounting functions of configuration management.  The principle
  1420. behind using automated systems is that text, both from source
  1421. code and other documents involved in the development of the system,
  1422. can be entered into a Master Library and modified only through
  1423. the use of the automated system.  This prevents anyone from performing
  1424. a change without having the proper authorization to access the
  1425. configuration data base.  "In general, only one program librarian,
  1426. who should be the project manager or someone directly responsible
  1427. to the manager, should have write access to the Master Library
  1428. during development."[2]  A number of software developers
  1429. have created software control facilities that are currently available
  1430. to be used for configuration status accounting.  A brief discussion
  1431. of two of these systems follows.
  1432.  
  1433.  
  1434. UNIX (1) SCCS
  1435. A.1 UNIX (1) SCCS
  1436.  
  1437.  
  1438.  
  1439. "Under the Unix (1) system, the make utility, and the elements
  1440. admin, get, prs, and delta, which comprise the Source Code Control
  1441. System, provide a basic configuration accounting system.  Initially
  1442. a directory is created using the mkdir function.  At this point,
  1443. it is possible to use the owner, group, world protection scheme
  1444. provided by Unix (1) to protect the directory.  In addition a
  1445. list of login identifiers is created which specifies who may update
  1446. each element to be processed by SCCS."
  1447.  
  1448.  
  1449. [2]
  1450.  
  1451.  
  1452. Following directory initiation, each document is entered using
  1453. the admin -n function.  Each entry that is made is referred to
  1454. as an element.  As each update is made to a new element, a new
  1455. generation of that element, known as a delta, is created.  The
  1456. name of each element that is stored in a file by SCCS is preceded
  1457. by "s.".  If a file is added to the directory that does
  1458. not contain this prefix, it is ignored by the SCCS function calls.
  1459.  
  1460.  
  1461.  
  1462. When the admin function is called, a number of arguments may be
  1463. specified that "specify parameters that may affect the file,
  1464. and may be changed by a subsequent call to admin.  The alogin
  1465. argument is used to create the equivalent of an access control
  1466. list by listing the login names of users who can apply the delta
  1467. function to the element, thus creating either a new generation
  1468.  (1) UNIX is a registered trademark of AT&T Bell Laboratories.
  1469.  
  1470.  
  1471. (delta) or variant branch."[2] The initial release, or initial
  1472. delta, of each code module is entered into the SCCS directory
  1473. through the admin -n function, thus creating the Master Library.
  1474.  The programmer may update each  module in the Master Library
  1475. by using the get -e function "which indicates that the module
  1476. will be edited and then the completed document will be reentered
  1477. into the directory using the delta function.  As long as the module
  1478. being edited was extracted from the SCCS directory using get -e,
  1479. it can be returned to the library using delta, and all necessary
  1480. update information will be entered with it.  The get function
  1481. can be used to extract a copy of any document, but after it is
  1482. edited it cannot be reentered into the library."[2] "SCCS
  1483. provides the capability to specify a software build by the way
  1484. it assigns an SCCS Identification Number (SID) to each output
  1485. of the delta function."[2]  One can get any version of a
  1486. text or source code by specifying the appropriate SID.  "There
  1487. are straightforward rules regarding how to specify the particular
  1488. SID desired when get is called.  If no SID is specified, the latest
  1489. release and level is provided."  The SID of the resulting
  1490. call to delta is affected by the SID used when get -e is called.[2]
  1491. "The function prs allows for configuration accounting, since
  1492. it extracts information from the s. files in the SCCS directory
  1493. and prints them out for the user.  Prs can be used to quickly
  1494. create reports, listing one or two important values such as the
  1495. last modified date for many SCCS files, or many values for one
  1496. or two file.  Larger reports can also be processed and created
  1497. using an editor."[2] 
  1498. A.2 VAX DEC/CMS 
  1499.  
  1500.  
  1501.  
  1502. "VAX DEC/CMS [7] is also used to track a history of each
  1503. text file stored in a CMS directory, but CMS does significantly
  1504. more auditing and cross-checking than admin does.  For example,
  1505. if an editor is used directly to modify a file in a CMS directory,
  1506. any further use by CMS of that file generates a warning meassage.
  1507.  Any files entered into a CMS directory by other than the CMS
  1508. utility will cause CMS itself to issue a warning message when
  1509. it is invoked for that directory.  Otherwise, the process of configuration
  1510. accounting is similar to SCCS.
  1511.  
  1512.  
  1513. The CMS CREATE LIBRARY function causes a directory to be set up,
  1514. and initial logging to start.  The project manager enters each
  1515. element into the directory by using the CMS CREATE ELEMENT function.
  1516.  One must RESERVE an element of a library to modify it, and it
  1517. can only be put back into the library using the REPLACE function.
  1518.  If someone else has RESERVEd an element between the original
  1519. programmer's RESERVE and REPLACE calls, a warning is issued to
  1520. both programmers and the occurrence is logged.  To get a sample
  1521. copy of the text, such as a program source, the FETCH function
  1522. will generate the latest generation or any specified generation
  1523. of an element, but will not allow an edited copy to be reinserted
  1524. into the library.  The SHOW function can be used to audit the
  1525. information about each element in the library.
  1526.  
  1527.  
  1528. Differences between SCCS and DEC/CMS appear concerning software
  1529. builds.  In Unix (1) a build must be either described in a makefile,
  1530. or else each element to be used in a build must be retrieved from
  1531. the SCCS directory using get, placed in another directory, and
  1532. the makefile then may refer to these source files to create the
  1533. executable build.  In CMS, the process of selecting only a subset
  1534. of source files, including some which are not the most current,
  1535. is automated by the use of class and group mechanisms.  To explain
  1536. how this works, one must understand the CMS concepts of generations
  1537. and variants.  Each generation of a file corresponds to a Unix
  1538. (1) delta.  Generations are normally numbered in ascending order.
  1539.  CMS also has the capability of creating a variant development
  1540. line to any generation by specifying in the REPLACE function a
  1541. variant name.  For example, if one RESERVEs generation 3 of an
  1542. element, then performs a REPLACE/VARIANT = T, this will create
  1543. generation 3T1 which may then be developed separately from generation
  1544. 3.  The first time this is used, the equivalent of an SCCS branch
  1545. delta is created.  Branches themselves can have branches, a capability
  1546. that SCCS does not have.
  1547.  
  1548.  
  1549. A group can be defined within a CMS directory, using the CMS CREATE
  1550. GROUP, and CMS INSERT ELEMENT functions.  A group is composed
  1551. of all generations, including variant generations, of all elements
  1552. inserted into the group.  Groups can be included within other
  1553. groups.  Groups can be defined with a non-empty intersection so
  1554. that they have overlapping membership.
  1555.  
  1556.  
  1557. The CMS CREATE CLASS function, together with the CMS INSERT GENERATION
  1558. function, can be used to specify the exact elements of a software
  1559. build, and the DESCRIPTION file can then refer to the entire class
  1560. by using the /GENERATION=classname qualifier on either the source
  1561. or action line of a dependency rule.  The makefile required by
  1562. Unix (1) SCCS can be much more complex when it is required to
  1563. describe a software build for intermediate testing."[2] 
  1564. GLOSSARY
  1565.  
  1566.  
  1567.  
  1568. Automatic Data Processing (ADP) System - An assembly of computer
  1569. hardware, firmware, and software configured for the purpose of
  1570. classifying, sorting, calculating, computing, summarizing, transmitting
  1571. and receiving, storing, and retrieving data with a minimum of
  1572. human intervention.[1]
  1573.  
  1574.  
  1575. Baseline - A set of critical observations or data used for a comparison
  1576. or a control.  A baseline indicates a cutoff point in the design
  1577. and development of a configuration item beyond which configuration
  1578. does not evolve without undergoing strict configuration control
  1579. policies and procedures.
  1580.  
  1581.  
  1582. Configuration Accounting - The recording and reporting of configuration
  1583. item descriptions and all departures from the baseline during
  1584. design and production.
  1585.  
  1586.  
  1587. Configuration Audit - An independent review of computer software
  1588. for the purpose of assessing compliance with established requirements,
  1589. standards, and baselines.
  1590.  
  1591.  
  1592. Configuration Control - The process of controlling modifications
  1593. to the system's design, hardware, firmware, software, and documentation
  1594. which provides sufficient assurance the system is protected against
  1595. the introduction of improper modification prior to, during, and
  1596. after system implementation.
  1597.  
  1598.  
  1599. Configuration Control Board (CCB) - An established committee that
  1600. is the final authority on all proposed changes to the ADP system.
  1601.  
  1602.  
  1603. Configuration Identification - The identifying of the system configuration
  1604. throughout the design, development, test, and production tasks.
  1605.  
  1606.  
  1607.  
  1608. Configuration Item  - The smallest component of hardware, software,
  1609. firmware, documentation, or any of its discrete portions, which
  1610. is tracked by the configuration management system.
  1611.  
  1612.  
  1613. Configuration Management - The management of changes made to a
  1614. system's hardware, software, firmware, documentation, tests, test
  1615. fixtures, and test documentation throughout the development and
  1616. operational life of the system.
  1617.  
  1618.  
  1619. Descriptive Top-Level Specification (DTLS) - A top-level specification
  1620. that is written in a natural language (e.g., English), an informal
  1621. program design notation, or a combination of the two.[1]
  1622.  
  1623.  
  1624. Firmware - Equipments or devices within which computer programming
  1625. instructions necessary to the performance of the device's discrete
  1626. functions are electrically embedded in such a  manner that they
  1627. cannot be electrically altered during normaldevice operations.
  1628.  
  1629.  
  1630. Formal Security Policy Model - An accurate and precise description,
  1631. in a formal, mathematical language, of the security policy supported
  1632. by the system.
  1633.  
  1634.  
  1635. Formal Top-Level Specification - A top-level specification that
  1636. is written in a formal mathematical language to allow theorems
  1637. showing the correspondence of the system specifications to its
  1638. formal requirements to be hypothesized and formally proven.[1]
  1639. Granularity - The relative fineness or courseness by which a mechanism
  1640. can be adjusted.  The phrase "the granularity of a single
  1641. user" means the access control mechanism can be adjusted
  1642. to include or exclude any single user.
  1643.  
  1644.  
  1645. Hardware - The electric, electronic, and mechanical equipment
  1646. used for processing data.[3]
  1647.  
  1648.  
  1649. Informal Security Policy Model - An accurate and precise description,
  1650. in a natural language (e.g., English), of the security policy
  1651. supported by the system. 
  1652.  
  1653.  
  1654. Software - Various programming aids that are frequently supplied
  1655. by the manufacturers to facilitate the purchaser's efficient operation
  1656. of the equipment.  Such software items include various assemblers,
  1657. generators, subroutine libraries, compilers, operating systems,
  1658. and industry application programs.  Tools - The means for achieving
  1659. an end result.  The tools referred to in this guideline are documentation,
  1660. procedures, and the organizational body, i.e., the CCB, which
  1661. all contribute to achieving the control objective of configuration
  1662. management. 
  1663.  
  1664.  
  1665. Trusted Computing Base (TCB) - The totality of protection mechanisms
  1666. within a computer system-including hardware, firmware, and software-the
  1667. combination of which is responsible for enforcing a security policy.
  1668.  A TCB consists of one or more components that together enforce
  1669. a unified security policy over a product or system.  The ability
  1670. of a TCB to correctly enforce a security policy depends solely
  1671. on the mechanisms within the TCB and on the correct input by system
  1672. administrative personnel of parameters (e.g., a user's clearance)
  1673. related to the security policy.[1]
  1674. REFERENCES
  1675.  
  1676.  
  1677.  • 1. National Computer Security Center, DOD Trusted Computer
  1678. System Evaluation Criteria, DOD, DOD 5200.28-STD, 1985.
  1679.  • 2. Brown, R. Leonard, "Configuration Management for Development
  1680. of a Secure Computer System", ATR-88(3777-12)-1, The  Aerospace
  1681. Corporation, 1987.
  1682.  • 3. Subcommittee on Automated Information System Security,
  1683.  Working Group #3, "Dictionary of Computer Security  Terminology",
  1684. 23 November 1986.
  1685.  • 4. Bersoff, Edward H., Henderson, Vilas D., Siegal, Stanley
  1686. G., Software Configuration Management, Prentice Hall, Inc., 1980.
  1687.  
  1688.  • 5. Samaras, Thomas T., Czerwinski, Frank L., Fundamentals
  1689. of Configuration Management, Wiley-Interscience, 1971.
  1690.  • 6. Sipple, Charles J., Computer Dictionary, Fourth Edition,
  1691.  Howard W. Sams & Co., 1985.
  1692.  • 7. Digital Equipment Corporation, VAX DEC/CMS Reference Manual,
  1693. AA-L372B-TE, Digital Equipment Corporation, 1984.
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699. e